template<class T>
struct Node
{    T  data;
    Node<T>  *next;
};

template<class T>
class LinKList
{
	private:
		Node<T> *first;
	public:
		LinKList();
		
		LinKList(T a[],int n);
		
		LinKList(int n,T a[]);
		
		~LinKList();
		
		int GetLength();
		
		T Get(int i);
		
		void Set(int i,T x);
		
		int Locate(T x);
		
		void Insert(int i,T x);
		
		T Delete(int i);
		int delete1(int min,int max);
		
		LinKList<T> Union(LinKList<T> b); 
		
		Node<T> *Getfirst(){return first;}
		
		void Setfirst(Node<T> *p){first=p;}
		
		void PrintLinKList();
					
};
